package com.shujia.day11;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class Demo10File {
    public static void main(String[] args) {
        /*
            判断功能
                public boolean isDirectory()
                public boolean isFile()
                public boolean exists()
                public boolean canRead()
                public boolean canWrite()
                public boolean isHidden()

         */
        File dirFile = new File("data/dir1");
        System.out.println(dirFile.isDirectory()); // true

        File dataFile = new File("data/data.txt");
        System.out.println(dataFile.isFile());

        System.out.println(dataFile.canRead()); //
        System.out.println(dataFile.canWrite());
        // 对于Linux平台 隐藏文件表示为 .文件名
        System.out.println(new File("data/.file").isHidden()); // true


        /*
            基本获取功能
                public String getAbsolutePath()
                public String getPath()
                public String getName()
                public long length()
                public long lastModified()
         */
        System.out.println(dataFile.getAbsoluteFile()); // 全路径
        System.out.println(dataFile.getPath()); // 相对路径
        System.out.println(dataFile.getName()); // 文件名
        System.out.println(dataFile.length()); // 文件长度
        System.out.println(dataFile.lastModified()); // 最后一次修改时间  => 1714381721534 毫秒

        // 格式化展示 yyyy-MM-dd HH:mm:ss
        Date date = new Date(dataFile.lastModified());
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date));


        /*
            高级获取功能
                public String[] list()
                public File[] listFiles()
         */

        File data = new File("data");
        String[] list = data.list();
        System.out.println(Arrays.toString(list)); // [.file, data.txt, dir1, dir2, score.txt, students.txt]

        // 数组 File
        File[] files = data.listFiles();
        for (File file : files) {
            System.out.println(file.getAbsoluteFile());
        }

        System.out.println("----------------");
        File[] files2 = data.listFiles();
        for (File file : files2) {
            String path = file.getAbsolutePath();
            if (path.endsWith(".jpg")) {
                System.out.println(path);
            }
        }


        // TODO: 如何遍历当前给定目录下的所有文件及目录？





    }
}
